package br.usp.pcs.lti.planning;

import rddl.RDDL;
import rddl.solver.mdp.vi.VI;

/**
 * Encontra políticas.
 * 
 * @author mlk
 * 
 */
public class Planner {

    /**
     * Utiliza o SPUDD para encontrar a política ótima para um determinado problema.
     * 
     * @param rddl
     *            Descrição do domínio e do problema.
     * @param instance_name
     *            Nome da instância do problema, que deve estar presente no rddl.
     * @return política SPUDD
     */
    public SPUDDPolicy learnSPUDDPolicy(RDDL rddl, String instance_name) {

        VI vi = new VI(instance_name);
        vi.setRDDL(rddl);
        vi.setRandSeed(123456L);
        vi.roundInit(Double.MAX_VALUE, 1000, 1, 1);

        SPUDDPolicy policy = new SPUDDPolicy(vi);
        policy.setInstance(instance_name);
        return policy;
    }
}
